package cn.chinaunicom.sdsi.frm.workflow.task.dao;

import java.util.List;

import org.activiti.engine.history.HistoricTaskInstance;

import cn.chinaunicom.sdsi.frm.workflow.bean.TaskVO;

/**
 * 流程定义的数据库访问层
 * 
 * @author liyh
 */
public interface ActTaskHistDao {

	/**
	 * 根据查询条件分页查询版本最新的流程定义
	 * 
	 * @param vo
	 *            查询实体
	 * @param firstResult
	 *            第一条记录位置
	 * @param maxResults
	 *            每页记录数
	 * @return 返回结果集
	 */
	List<HistoricTaskInstance> listHasDone4Page(TaskVO vo, int firstResult, int maxResults);

	/**
	 * 据传入参数查询符合条件的记录条数
	 * 
	 * @param vo
	 *            任务封装条件
	 * @return 符合条件记录数
	 */
	long listFilteredCount(TaskVO vo);

	/**
	 * 据查询条件查询全部记录的条数
	 * 
	 * @param vo
	 *            查询实体
	 * @return 全部记录数
	 */
	long listTotalCount(TaskVO vo);

	/**
	 * 据参数名返回参数值
	 * 
	 * @param task
	 *            历史任务
	 * @param varName
	 *            变量名称
	 * @return 索取变量值
	 */
	Object parseVariable(HistoricTaskInstance task, String varName);
}
